namespace SubhadraSolutions.Sharp.Logging.Contracts
{
    using SubhadraSolutions.Sharp.Utils.Contracts;
    using System;

    public interface ILogger : IUnique
    {
        #region Methods

        void Log(LogStoreItem item);

        void Log(LogItemSeverity severity, LogItemCategories categories, object logEntry);

        void Log(LogItemSeverity severity, LogItemCategories categories, string message, Exception exception);

        void Log(ILogItem logEntry);

        #endregion Methods
    }
}